The invention relates generally to the field of digital multimedia communications. More specifically, the invention relates to a method and apparatus for converting the bitrate of an encoded bitstream without having to execute a full-re-encoding process, i.e., without having to first decode the encoded bitstream and then re-encode the decoded images at the new desired bitrate.
The increasing demand for digital video/audio information presents an ever increasing problem of transmitting and/or storing an enormous amount of information. For example, the growth of the Internet and the demand for digital studio or server (e.g., to provide video-on-demand services of stored programmings) have enabled many users to gain access to various multimedia information such as video clips or movies. Since multimedia information is often very large in term of size, the multimedia information is typically stored in an encoded form, e.g., an encoded bitstream. The encoded bitstream is encoded to minimize spatial and temporal redundancy, thereby minimizing transmission and storage requirements. However, the bitstream is often encoded at a particular bitrate without knowledge as to the processing resources that will be made available to retrieve or access the encoded bitstream.
The encoded bitstream, e.g., MPEG signals, can be encoded at different bitrates in order to accommodate different requirements of different applications. For example, digital studio material is likely to be stored at a higher bitrate to maintain a high level of quality in the stored material. However, in certain situations the encoded signal may be desired at a lower bitrate, e.g., for reducing the cost of storage or for fitting the capacity of a specific transmission media.
For example, two methods of accessing an image sequence across a network or communication channel are available. First, the user can download the compressed bitstream in its entirety, and then decode and display the image sequence locally using the user""s computer. One drawback of this method is the length of time that a user must wait while the image sequence is being downloaded. Another drawback is that the user may need to reserve a large storage space to accommodate a large image sequence.
A second method is referred to as xe2x80x9cvideo streamingxe2x80x9d where the processes of downloading, decoding and displaying the image sequence can be performed simultaneously. Namely, each frame of a sequence is immediately decoded and displayed upon receipt by the user.
However, video streaming poses a new set of challenges. Generally, the pre-recorded original video sequence is compressed at a certain bit-rate. This bitrate may not coincide with the channel bitrate used by the user. Namely, users may download the image sequence at a different bit rate, depending on the available bandwidth, e.g., high user access time versus low user access time. Although the server can reduce the delivery rate of the image sequence to match the channel bit rate, such reduction will result in a xe2x80x9cslow motionxe2x80x9d display at the receiver.
One solution to address varying bitrate is to decode the image sequence at the server, and then re-encode the image sequence using different coding parameters, e.g., different quantizer scales, thereby resulting in a desired bit-rate. Although this method has proven to be effective, it is computationally expensive. Namely, for a single frame, requantizing the image with a different quantizer scale is reasonably straightforward.
To avoid such computational expense, one can partially decode the image sequence and then apply requantization. However, if the requantized frame is used as a reference frame (as most I and P frames are) the additional quantization error will propagate to other frames. This error is often referred to as xe2x80x9cdriftingxe2x80x9d, and creates a distortion in addition to that caused by the reduced bitrate, and may be unacceptable in some application.
Therefore, a need exists in the art for an apparatus and method for changing the bitrate of an encoded bitstream while minimizing drifting and computational cost.
The present invention provides an apparatus and method for changing the bitrate of an encoded bitstream in a compressed domain, i.e., a domain where the input image is still represented by transform coefficients, e.g., DCT coefficients or wavelet coefficients. The bitrate of the encoded bitstream is changed by applying a different quantization scale directly to the transform coefficients of the encoded bitstream. The requantization error or distortion introduced by the requantization process is addressed by propagating the requantization error to the following frame.
More specifically, the drifting distortion after requantization for each of the reference frames, e.g., I or P frames, are stored in a xe2x80x9cdistortion reference framexe2x80x9d, which is used to propagate the requantization error. Namely, the errors in the xe2x80x9cdistortion reference framexe2x80x9d are used to derive xe2x80x9cdistortion adjustmentsxe2x80x9d for frames that depend from such reference frames, e.g., subsequent B and P frames. The distortion adjustments are in the form of transform coefficient values that are then added to relevant blocks of subsequent B and other P frames. Since the distortion adjustments are added to subsequent B and P frames prior to the requantization of these subsequent B and P frames, xe2x80x9cdriftingxe2x80x9d is accounted for in the compressed domain without having to completely decode the entire image sequence and then re-encode the entire image sequence using a new quantization scale. This novel method of changing the bitrate of an encoded bitstream addresses xe2x80x9cdriftingxe2x80x9d, while significantly reduces the computational cost in implementing bitrate changes.